--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

--
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
--

CREATE PROCEDURAL LANGUAGE plpgsql;


ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres;

SET search_path = public, pg_catalog;

--
-- Name: etl(character varying); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION etl(cadena character varying) RETURNS void
    LANGUAGE plpgsql
    AS $$

BEGIN

 

 DELETE FROM unidad_administrativa CASCADE;

 DELETE FROM anho CASCADE;

 DELETE FROM personal CASCADE;

 DELETE FROM alumno CASCADE;



 INSERT INTO alumno

 SELECT P.*

 FROM dblink(cadena,'SELECT * FROM alumno') AS 

 P(carnet character varying(10), nombre character varying(40), apellidos  character varying(50), sexo character varying(1)); 	 	

 	

 	





END

$$;


ALTER FUNCTION public.etl(cadena character varying) OWNER TO postgres;

--
-- Name: etl_mod(character varying, character varying, character varying, character varying, character varying); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION etl_mod(dbname character varying, port character varying, host character varying, usuario character varying, password character varying) RETURNS void
    LANGUAGE plpgsql
    AS $$BEGIN

DELETE FROM expediente;
DELETE FROM pertenece;
DELETE FROM se_compone;
DELETE FROM imparte;
DELETE FROM grupo;
DELETE FROM anho;
DELETE FROM materia;
DELETE FROM carrera;
DELETE FROM unidad_academica;
DELETE FROM unidad_administrativa;
DELETE FROM alumno;
DELETE FROM docente;
DELETE FROM personal;

ALTER SEQUENCE instancia_instrumento_id_instancia_seq restart 1;
ALTER SEQUENCE instrumento_id_instrumento_seq restart 1;
ALTER SEQUENCE pregunta_id_pregunta_seq restart 1;
ALTER SEQUENCE respuesta_id_respuesta_seq restart 1;
ALTER SEQUENCE usuario_id_usuario_seq restart 1;

INSERT INTO alumno
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' ||usuario ||
' password=' || password,
'SELECT carnet,nombre,apellidos,sexo FROM alumno'
) AS
P ( carnet character varying(10),
nombre character varying(40),
apellidos character varying(50),
sexo character varying(1));

INSERT INTO personal
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo,nombre,apellidos,sexo FROM personal'
) AS
P( codigo character varying(10),
nombre character varying(80),
apellidos character varying(50),
sexo character varying(1));

INSERT INTO docente
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo_personal FROM docente'
) AS
P( codigo_personal character varying(10));

INSERT INTO unidad_administrativa
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo,nombre,estado FROM unidad_administrativa'
) AS
P( codigo character varying(10),
nombre character varying(80),
estado character varying(10));


INSERT INTO unidad_academica
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo,nombre,estado,codigo_unidad_administrativa FROM unidad_academica'
) AS
P( codigo character varying(10),
nombre character varying(80),
estado character varying(10),
codigo_unidad_administrativa character varying(10));


INSERT INTO carrera
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo,plan_estudios,nombre,estado,codigo_unidad_academica,codigo_unidad_administrativa FROM carrera'
) AS
P( codigo character varying(7),
plan_estudios smallint,
nombre text,
estado character varying(10),
codigo_unidad_academica character varying(10),
codigo_unidad_administrativa character varying(10));


INSERT INTO materia
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo,codigo_carrera,plan_estudios_carrera,nombre,codigo_unidad_academica FROM materia'
) AS
P( codigo character varying(8),
codigo_carrera character varying(7),
plan_estudios_carrera smallint,
nombre text,
codigo_unidad_academica character varying(10));

INSERT INTO anho
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT numero,ciclo,fecha_inicio,fecha_fin,fecha_fin_clases FROM anho'
) AS
P( numero smallint,
ciclo character varying(2),
fecha_inicio date,
fecha_fin date,
fecha_fin_clases date);


INSERT INTO se_compone
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo_unidad_academica,codigo_personal_docente,fecha_inicio FROM se_compone'
) AS
P( codigo_unidad_academica character varying(10),
codigo_personal_docente character varying(10),
fecha_inicio date);

INSERT INTO grupo
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo_materia,
codigo_carrera_materia,
plan_estudios_carrera_materia,
numero_anho,
ciclo_anho,
numero,
cupo,
inscritos FROM grupo'
) AS
P( codigo_materia character varying(8),
codigo_carrera_materia character varying(7),
plan_estudios_carrera_materia smallint,
numero_anho smallint,
ciclo_anho character varying(2),
numero character varying(2),
cupo smallint,
inscritos smallint);


INSERT INTO imparte
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT codigo_personal_docente,codigo_materia_grupo,
codigo_carrera_materia_grupo,
plan_estudios_carrera_materia_grupo,
numero_anho_grupo,
ciclo_anho_grupo,
numero_grupo
FROM imparte'
) AS
P( codigo_personal_docente character varying(10),
codigo_materia_grupo character varying(8),
codigo_carrera_materia_grupo character varying(7),
plan_estudios_carrera_materia_grupo smallint,
numero_anho_grupo smallint,
ciclo_anho_grupo character varying(2),
numero_grupo character varying(2));


INSERT INTO pertenece
SELECT P.*
FROM dblink(
'dbname=' || dbname ||
' port=' || port ||
' host=' || host ||
' user=' || usuario ||
' password=' || password,
'SELECT carnet_alumno,codigo_carrera,plan_estudios_carrera,fecha_inicio FROM pertenece') AS
P( carnet_alumno character varying(10),
codigo_carrera character varying(7),
plan_estudios_carrera smallint,
fecha_inicio date);

INSERT INTO expediente
SELECT P.*
FROM dblink('dbname=' || dbname || ' port=' || port || ' host=' || host || ' user=' || usuario || ' password=' || password,
'SELECT carnet_alumno,numero_matricula,codigo_materia_grupo,codigo_carrera_materia_grupo,plan_estudios_carrera_materia_grupo,numero_anho_grupo,ciclo_anho_grupo,numero_grupo FROM expediente') AS
P( carnet_alumno character varying(10),
numero_matricula smallint,
codigo_materia_grupo character varying(8),
codigo_carrera_materia_grupo character varying(7),
plan_estudios_carrera_materia_grupo smallint,
numero_anho_grupo smallint,
ciclo_anho_grupo character varying(2),
numero_grupo character varying(2));


-- RETURN;
-- EXCEPTION
-- WHEN OTHERS THEN
-- RAISE NOTICE 'an EXCEPTION is about to be raised';
-- RAISE EXCEPTION 'NUM:%, DETAILS:%', SQLSTATE, SQLERRM;
-- ROLLBACK TO SAVEPOINT punto1;
-- do nothing
-- END;

-- COMMIT;

END;$$;


ALTER FUNCTION public.etl_mod(dbname character varying, port character varying, host character varying, usuario character varying, password character varying) OWNER TO postgres;

--
-- Name: rellenar_users(); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION rellenar_users() RETURNS trigger
    LANGUAGE plpgsql
    AS $$  DECLARE
  BEGIN

    IF (TG_OP = 'INSERT') THEN
          INSERT INTO usuario (
                     id_user,
                     tipo,
                     rol,
nombre,
apellidos
) 
              VALUES (               
                     NEW.carnet,
                     'S',
                     8,
new.nombre,
new.apellidos
                    );

          RETURN NULL;
    
    ELSEIF (TG_OP = 'DELETE') THEN
          DELETE FROM usuario WHERE id_user=OLD.carnet;


RETURN NULL;
    
    END IF;
  END;
$$;


ALTER FUNCTION public.rellenar_users() OWNER TO postgres;

--
-- Name: rellenar_users2(); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION rellenar_users2() RETURNS trigger
    LANGUAGE plpgsql
    AS $$  DECLARE
  BEGIN

    IF (TG_OP = 'INSERT') THEN
          INSERT INTO usuario (
                     id_user,
                     tipo,
                     rol,
nombre,
apellidos
) 
              VALUES (               
                     NEW.codigo_personal,
                     'd',
                     8,
(select nombre from docente,personal where docente.codigo_personal=personal.codigo and docente.codigo_personal=new.codigo_personal),
(select apellidos from docente,personal where docente.codigo_personal=personal.codigo and docente.codigo_personal=new.codigo_personal)
                    );

          RETURN NULL;
    
    ELSEIF (TG_OP = 'DELETE') THEN
          DELETE FROM usuario WHERE id_user=OLD.codigo_personal;


RETURN NULL;
    
    END IF;
  END;$$;


ALTER FUNCTION public.rellenar_users2() OWNER TO postgres;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: alumno; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE alumno (
    carnet character varying(10) NOT NULL,
    nombre character varying(40) NOT NULL,
    apellidos character varying(50) NOT NULL,
    sexo character varying(1) NOT NULL
);


ALTER TABLE public.alumno OWNER TO postgres;

--
-- Name: anho; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE anho (
    numero smallint NOT NULL,
    ciclo character varying(2) NOT NULL,
    fecha_inicio date,
    fecha_fin date,
    fecha_fin_clases date
);


ALTER TABLE public.anho OWNER TO postgres;

--
-- Name: carrera; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE carrera (
    codigo character varying(7) NOT NULL,
    plan_estudios smallint NOT NULL,
    nombre text NOT NULL,
    estado character varying(10) NOT NULL,
    codigo_unidad_academica character varying(10),
    codigo_unidad_administrativa character varying(10) NOT NULL
);


ALTER TABLE public.carrera OWNER TO postgres;

--
-- Name: ci_sessions; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE ci_sessions (
    session_id character varying(40) DEFAULT 0 NOT NULL,
    ip_address character varying(16) DEFAULT 0 NOT NULL,
    user_agent character varying(120) NOT NULL,
    last_activity integer DEFAULT 0 NOT NULL,
    user_data text,
    CONSTRAINT ckeck_last_activity CHECK ((last_activity >= 0))
);


ALTER TABLE public.ci_sessions OWNER TO postgres;

--
-- Name: docente; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE docente (
    codigo_personal character varying(10) NOT NULL,
    codigo_jefe character varying(10)
);


ALTER TABLE public.docente OWNER TO postgres;

--
-- Name: expediente; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE expediente (
    carnet_alumno character varying(10) NOT NULL,
    numero_matricula smallint NOT NULL,
    codigo_materia_grupo character varying(8) NOT NULL,
    codigo_carrera_materia_grupo character varying(7) NOT NULL,
    plan_estudios_carrera_materia_grupo smallint NOT NULL,
    numero_anho_grupo smallint NOT NULL,
    ciclo_anho_grupo character varying(2) NOT NULL,
    numero_grupo character varying(2) NOT NULL
);


ALTER TABLE public.expediente OWNER TO postgres;

--
-- Name: grupo; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE grupo (
    codigo_materia character varying(8) NOT NULL,
    codigo_carrera_materia character varying(7) NOT NULL,
    plan_estudios_carrera_materia smallint NOT NULL,
    numero_anho smallint NOT NULL,
    ciclo_anho character varying(2) NOT NULL,
    numero character varying(2) NOT NULL,
    cupo smallint,
    inscritos smallint
);


ALTER TABLE public.grupo OWNER TO postgres;

--
-- Name: imparte; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE imparte (
    codigo_personal_docente character varying(10) NOT NULL,
    codigo_materia_grupo character varying(8) NOT NULL,
    codigo_carrera_materia_grupo character varying(7) NOT NULL,
    plan_estudios_carrera_materia_grupo smallint NOT NULL,
    numero_anho_grupo smallint NOT NULL,
    ciclo_anho_grupo character varying(2) NOT NULL,
    numero_grupo character varying(2) NOT NULL
);


ALTER TABLE public.imparte OWNER TO postgres;

--
-- Name: instancia_instrumento; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE instancia_instrumento (
    id_instancia integer NOT NULL,
    id_instrumento integer NOT NULL,
    numero smallint,
    ciclo character varying(2),
    nombre character varying(50),
    inicio date NOT NULL,
    fin date NOT NULL
);


ALTER TABLE public.instancia_instrumento OWNER TO postgres;

--
-- Name: instancia_instrumento_id_instancia_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE instancia_instrumento_id_instancia_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.instancia_instrumento_id_instancia_seq OWNER TO postgres;

--
-- Name: instancia_instrumento_id_instancia_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE instancia_instrumento_id_instancia_seq OWNED BY instancia_instrumento.id_instancia;


--
-- Name: instrumento; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE instrumento (
    id_instrumento integer NOT NULL,
    tipo_instrumento character(2) NOT NULL,
    tipo_pregunta character(1) NOT NULL,
    titulo text NOT NULL,
    indicaciones text NOT NULL
);


ALTER TABLE public.instrumento OWNER TO postgres;

--
-- Name: instrumento_id_instrumento_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE instrumento_id_instrumento_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.instrumento_id_instrumento_seq OWNER TO postgres;

--
-- Name: instrumento_id_instrumento_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE instrumento_id_instrumento_seq OWNED BY instrumento.id_instrumento;


--
-- Name: materia; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE materia (
    codigo character varying(8) NOT NULL,
    codigo_carrera character varying(7) NOT NULL,
    plan_estudios_carrera smallint NOT NULL,
    nombre text NOT NULL,
    codigo_unidad_academica character varying(10)
);


ALTER TABLE public.materia OWNER TO postgres;

--
-- Name: opcion_multiple; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE opcion_multiple (
    id_pregunta smallint NOT NULL,
    id_opcion character(1) NOT NULL,
    opcion text NOT NULL,
    valor numeric DEFAULT 0 NOT NULL,
    grado numeric DEFAULT 0 NOT NULL
);


ALTER TABLE public.opcion_multiple OWNER TO postgres;

--
-- Name: personal; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE personal (
    codigo character varying(10) NOT NULL,
    nombre character varying(80) NOT NULL,
    apellidos character varying(50) NOT NULL,
    sexo character varying(1) NOT NULL,
    img text DEFAULT 'persona1.png'::text NOT NULL
);


ALTER TABLE public.personal OWNER TO postgres;

--
-- Name: pertenece; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE pertenece (
    carnet_alumno character varying(10) NOT NULL,
    codigo_carrera character varying(7) NOT NULL,
    plan_estudios_carrera smallint NOT NULL,
    fecha_inicio date NOT NULL
);


ALTER TABLE public.pertenece OWNER TO postgres;

--
-- Name: pregunta; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE pregunta (
    id_pregunta integer NOT NULL,
    id_instrumento integer NOT NULL,
    pregunta text NOT NULL,
    peso numeric DEFAULT 0 NOT NULL
);


ALTER TABLE public.pregunta OWNER TO postgres;

--
-- Name: pregunta_id_pregunta_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE pregunta_id_pregunta_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.pregunta_id_pregunta_seq OWNER TO postgres;

--
-- Name: pregunta_id_pregunta_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE pregunta_id_pregunta_seq OWNED BY pregunta.id_pregunta;


--
-- Name: respuesta; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE respuesta (
    id_respuesta integer NOT NULL,
    id_instrumento integer,
    id_pregunta integer NOT NULL,
    id_instancia integer,
    respuesta numeric NOT NULL
);


ALTER TABLE public.respuesta OWNER TO postgres;

--
-- Name: respuesta_alumno; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE respuesta_alumno (
    id_respuesta integer NOT NULL,
    id_instrumento integer NOT NULL,
    id_pregunta integer NOT NULL,
    carnet_alumno character varying(10),
    codigo_materia_grupo character varying(8),
    codigo_carrera_materia_grupo character varying(7),
    plan_estudios_carrera_materia_g smallint,
    numero_anho_grupo smallint,
    ciclo_anho_grupo character varying(2),
    numero_grupo character varying(2),
    id_instancia integer NOT NULL,
    respuesta numeric NOT NULL
);


ALTER TABLE public.respuesta_alumno OWNER TO postgres;

--
-- Name: respuesta_autoevaluacion; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE respuesta_autoevaluacion (
    id_respuesta integer NOT NULL,
    id_pregunta integer NOT NULL,
    codigo_personal character varying(10) NOT NULL,
    id_instrumento integer,
    id_instancia integer,
    respuesta numeric
);


ALTER TABLE public.respuesta_autoevaluacion OWNER TO postgres;

--
-- Name: respuesta_id_respuesta_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE respuesta_id_respuesta_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.respuesta_id_respuesta_seq OWNER TO postgres;

--
-- Name: respuesta_id_respuesta_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE respuesta_id_respuesta_seq OWNED BY respuesta.id_respuesta;


--
-- Name: respuesta_jefe; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE respuesta_jefe (
    id_respuesta integer NOT NULL,
    id_pregunta integer NOT NULL,
    codigo_personal character varying(10) NOT NULL,
    id_instrumento integer,
    id_instancia integer,
    respuesta numeric,
    evaluador character varying(10)
);


ALTER TABLE public.respuesta_jefe OWNER TO postgres;

--
-- Name: se_compone; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE se_compone (
    codigo_unidad_academica character varying(10) NOT NULL,
    codigo_personal_docente character varying(10) NOT NULL,
    fecha_inicio date NOT NULL
);


ALTER TABLE public.se_compone OWNER TO postgres;

--
-- Name: unidad_academica; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE unidad_academica (
    codigo character varying(10) NOT NULL,
    nombre character varying(80) NOT NULL,
    estado character varying(10) NOT NULL,
    codigo_unidad_administrativa character varying(10) NOT NULL
);


ALTER TABLE public.unidad_academica OWNER TO postgres;

--
-- Name: unidad_administrativa; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE unidad_administrativa (
    codigo character varying(10) NOT NULL,
    nombre character varying(80) NOT NULL,
    estado character varying(10) NOT NULL
);


ALTER TABLE public.unidad_administrativa OWNER TO postgres;

--
-- Name: usuario; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE usuario (
    id_usuario integer NOT NULL,
    id_user character varying(25) NOT NULL,
    tipo character(1) NOT NULL,
    rol smallint NOT NULL,
    nombre character varying(80) NOT NULL,
    apellidos character varying(50) NOT NULL
);


ALTER TABLE public.usuario OWNER TO postgres;

--
-- Name: usuario_id_usuario_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE usuario_id_usuario_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.usuario_id_usuario_seq OWNER TO postgres;

--
-- Name: usuario_id_usuario_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE usuario_id_usuario_seq OWNED BY usuario.id_usuario;


--
-- Name: view_listadisponible; Type: VIEW; Schema: public; Owner: postgres
--

CREATE VIEW view_listadisponible AS
    SELECT alumno.carnet, alumno.nombre AS nombre_alumno, alumno.apellidos AS apellidos_alumno, expediente.numero_grupo, materia.nombre AS nombre_materia, anho.numero, anho.ciclo, instancia_instrumento.id_instancia, instancia_instrumento.inicio, instancia_instrumento.fin, personal.nombre AS nombre_personal, personal.apellidos AS apellidos_personal, personal.img, instrumento.tipo_instrumento, materia.codigo FROM alumno, expediente, grupo, anho, materia, instancia_instrumento, docente, personal, instrumento, imparte WHERE ((((((((((((((((((((((((alumno.carnet)::text = (expediente.carnet_alumno)::text) AND ((expediente.codigo_materia_grupo)::text = (grupo.codigo_materia)::text)) AND ((expediente.codigo_carrera_materia_grupo)::text = (grupo.codigo_carrera_materia)::text)) AND (expediente.plan_estudios_carrera_materia_grupo = grupo.plan_estudios_carrera_materia)) AND (expediente.numero_anho_grupo = grupo.numero_anho)) AND ((expediente.ciclo_anho_grupo)::text = (grupo.ciclo_anho)::text)) AND ((expediente.numero_grupo)::text = (grupo.numero)::text)) AND (anho.numero = grupo.numero_anho)) AND ((anho.ciclo)::text = (grupo.ciclo_anho)::text)) AND ((materia.codigo)::text = (grupo.codigo_materia)::text)) AND ((materia.codigo_carrera)::text = (grupo.codigo_carrera_materia)::text)) AND (materia.plan_estudios_carrera = grupo.plan_estudios_carrera_materia)) AND (instancia_instrumento.numero = anho.numero)) AND ((instancia_instrumento.ciclo)::text = (anho.ciclo)::text)) AND ((personal.codigo)::text = (docente.codigo_personal)::text)) AND ((personal.codigo)::text = (imparte.codigo_personal_docente)::text)) AND (instrumento.id_instrumento = instancia_instrumento.id_instrumento)) AND ((imparte.codigo_materia_grupo)::text = (grupo.codigo_materia)::text)) AND ((imparte.codigo_carrera_materia_grupo)::text = (grupo.codigo_carrera_materia)::text)) AND (imparte.plan_estudios_carrera_materia_grupo = grupo.plan_estudios_carrera_materia)) AND (imparte.numero_anho_grupo = grupo.numero_anho)) AND ((imparte.ciclo_anho_grupo)::text = (grupo.ciclo_anho)::text)) AND ((imparte.numero_grupo)::text = (grupo.numero)::text));


ALTER TABLE public.view_listadisponible OWNER TO postgres;

--
-- Name: view_instrumento; Type: VIEW; Schema: public; Owner: postgres
--

CREATE VIEW view_instrumento AS
    SELECT view_listadisponible.nombre_alumno, view_listadisponible.apellidos_alumno, view_listadisponible.numero_grupo, carrera.nombre AS nombre_carrera, view_listadisponible.nombre_materia, unidad_academica.nombre AS nombre_unidad_academica, view_listadisponible.ciclo, view_listadisponible.carnet, unidad_academica.codigo, instrumento.tipo_instrumento, instrumento.tipo_pregunta, instrumento.titulo, instrumento.indicaciones, view_listadisponible.id_instancia, view_listadisponible.nombre_personal, view_listadisponible.apellidos_personal, instrumento.id_instrumento, view_listadisponible.codigo AS codigo_materia FROM view_listadisponible, carrera, pertenece, unidad_academica, instancia_instrumento, instrumento WHERE ((((((((view_listadisponible.carnet)::text = (pertenece.carnet_alumno)::text) AND ((pertenece.codigo_carrera)::text = (carrera.codigo)::text)) AND (pertenece.plan_estudios_carrera = carrera.plan_estudios)) AND ((unidad_academica.codigo)::text = (carrera.codigo_unidad_academica)::text)) AND ((unidad_academica.codigo_unidad_administrativa)::text = (carrera.codigo_unidad_administrativa)::text)) AND (instancia_instrumento.id_instancia = view_listadisponible.id_instancia)) AND (instancia_instrumento.id_instrumento = instrumento.id_instrumento));


ALTER TABLE public.view_instrumento OWNER TO postgres;

--
-- Name: id_instancia; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE instancia_instrumento ALTER COLUMN id_instancia SET DEFAULT nextval('instancia_instrumento_id_instancia_seq'::regclass);


--
-- Name: id_instrumento; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE instrumento ALTER COLUMN id_instrumento SET DEFAULT nextval('instrumento_id_instrumento_seq'::regclass);


--
-- Name: id_pregunta; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE pregunta ALTER COLUMN id_pregunta SET DEFAULT nextval('pregunta_id_pregunta_seq'::regclass);


--
-- Name: id_respuesta; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE respuesta ALTER COLUMN id_respuesta SET DEFAULT nextval('respuesta_id_respuesta_seq'::regclass);


--
-- Name: id_usuario; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE usuario ALTER COLUMN id_usuario SET DEFAULT nextval('usuario_id_usuario_seq'::regclass);


--
-- Name: ci_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY ci_sessions
    ADD CONSTRAINT ci_sessions_pkey PRIMARY KEY (session_id);


--
-- Name: pk_alumno; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY alumno
    ADD CONSTRAINT pk_alumno PRIMARY KEY (carnet);


--
-- Name: pk_anho; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY anho
    ADD CONSTRAINT pk_anho PRIMARY KEY (numero, ciclo);


--
-- Name: pk_carrera; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY carrera
    ADD CONSTRAINT pk_carrera PRIMARY KEY (codigo, plan_estudios);


--
-- Name: pk_docente; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY docente
    ADD CONSTRAINT pk_docente PRIMARY KEY (codigo_personal);


--
-- Name: pk_expediente; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY expediente
    ADD CONSTRAINT pk_expediente PRIMARY KEY (carnet_alumno, codigo_materia_grupo, codigo_carrera_materia_grupo, plan_estudios_carrera_materia_grupo, numero_anho_grupo, ciclo_anho_grupo, numero_grupo, numero_matricula);


--
-- Name: pk_grupo; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY grupo
    ADD CONSTRAINT pk_grupo PRIMARY KEY (codigo_materia, codigo_carrera_materia, plan_estudios_carrera_materia, numero_anho, ciclo_anho, numero);


--
-- Name: pk_imparte; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY imparte
    ADD CONSTRAINT pk_imparte PRIMARY KEY (codigo_personal_docente, codigo_materia_grupo, codigo_carrera_materia_grupo, plan_estudios_carrera_materia_grupo, numero_anho_grupo, ciclo_anho_grupo, numero_grupo);


--
-- Name: pk_instancia_instrumento; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY instancia_instrumento
    ADD CONSTRAINT pk_instancia_instrumento PRIMARY KEY (id_instrumento, id_instancia);


--
-- Name: pk_instrumento; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY instrumento
    ADD CONSTRAINT pk_instrumento PRIMARY KEY (id_instrumento);


--
-- Name: pk_materia; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY materia
    ADD CONSTRAINT pk_materia PRIMARY KEY (codigo, codigo_carrera, plan_estudios_carrera);


--
-- Name: pk_opcion_multiple; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY opcion_multiple
    ADD CONSTRAINT pk_opcion_multiple PRIMARY KEY (id_pregunta, id_opcion);


--
-- Name: pk_personal; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY personal
    ADD CONSTRAINT pk_personal PRIMARY KEY (codigo);


--
-- Name: pk_pertenece; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY pertenece
    ADD CONSTRAINT pk_pertenece PRIMARY KEY (carnet_alumno, codigo_carrera, plan_estudios_carrera, fecha_inicio);


--
-- Name: pk_pregunta; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY pregunta
    ADD CONSTRAINT pk_pregunta PRIMARY KEY (id_pregunta);


--
-- Name: pk_respuesta; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY respuesta
    ADD CONSTRAINT pk_respuesta PRIMARY KEY (id_pregunta, id_respuesta);


--
-- Name: pk_respuesta_alumno; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY respuesta_alumno
    ADD CONSTRAINT pk_respuesta_alumno PRIMARY KEY (id_respuesta, id_pregunta);


--
-- Name: pk_respuesta_autoevaluacion; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY respuesta_autoevaluacion
    ADD CONSTRAINT pk_respuesta_autoevaluacion PRIMARY KEY (id_respuesta, id_pregunta);


--
-- Name: pk_respuesta_jefe; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY respuesta_jefe
    ADD CONSTRAINT pk_respuesta_jefe PRIMARY KEY (id_respuesta, id_pregunta);


--
-- Name: pk_se_compone; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY se_compone
    ADD CONSTRAINT pk_se_compone PRIMARY KEY (codigo_unidad_academica, codigo_personal_docente, fecha_inicio);


--
-- Name: pk_unidad_academica; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY unidad_academica
    ADD CONSTRAINT pk_unidad_academica PRIMARY KEY (codigo);


--
-- Name: pk_unidad_administrativa; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY unidad_administrativa
    ADD CONSTRAINT pk_unidad_administrativa PRIMARY KEY (codigo);


--
-- Name: usuario_id_usuario_key; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY usuario
    ADD CONSTRAINT usuario_id_usuario_key UNIQUE (id_usuario);


--
-- Name: usuario_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY usuario
    ADD CONSTRAINT usuario_pkey PRIMARY KEY (id_user);


--
-- Name: idx_alumno_carnet; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_alumno_carnet ON alumno USING btree (carnet);


--
-- Name: idx_anho; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_anho ON anho USING btree (numero, ciclo);


--
-- Name: idx_carrera; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_carrera ON carrera USING btree (codigo, plan_estudios);


--
-- Name: idx_docente; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE INDEX idx_docente ON docente USING btree (codigo_personal);


--
-- Name: idx_expediente; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_expediente ON expediente USING btree (carnet_alumno, codigo_materia_grupo, codigo_carrera_materia_grupo, plan_estudios_carrera_materia_grupo, numero_anho_grupo, ciclo_anho_grupo, numero_grupo, numero_matricula);


--
-- Name: idx_grupo; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_grupo ON grupo USING btree (codigo_materia, codigo_carrera_materia, plan_estudios_carrera_materia, numero_anho, ciclo_anho, numero);


--
-- Name: idx_id_instrumento; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_id_instrumento ON instrumento USING btree (id_instrumento);


--
-- Name: idx_imparte; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_imparte ON imparte USING btree (codigo_personal_docente, codigo_materia_grupo, codigo_carrera_materia_grupo, plan_estudios_carrera_materia_grupo, numero_anho_grupo, ciclo_anho_grupo, numero_grupo);


--
-- Name: idx_instancia_intrumento; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_instancia_intrumento ON instancia_instrumento USING btree (id_instrumento, id_instancia);


--
-- Name: idx_materia; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_materia ON materia USING btree (codigo, codigo_carrera, plan_estudios_carrera);


--
-- Name: idx_opcion_multiple; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_opcion_multiple ON opcion_multiple USING btree (id_pregunta, id_opcion);


--
-- Name: idx_personal_codigo; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_personal_codigo ON personal USING btree (codigo);


--
-- Name: idx_pertenece; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_pertenece ON pertenece USING btree (carnet_alumno, codigo_carrera, plan_estudios_carrera, fecha_inicio);


--
-- Name: idx_pregunta; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_pregunta ON pregunta USING btree (id_pregunta);


--
-- Name: idx_respuesta; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_respuesta ON respuesta USING btree (id_pregunta, id_respuesta);


--
-- Name: idx_respuesta_alumno; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_respuesta_alumno ON respuesta_alumno USING btree (id_respuesta, id_pregunta);


--
-- Name: idx_se_compone; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_se_compone ON se_compone USING btree (codigo_unidad_academica, codigo_personal_docente, fecha_inicio);


--
-- Name: idx_unidad_academica_codigo; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_unidad_academica_codigo ON unidad_academica USING btree (codigo);


--
-- Name: idx_unidad_administrativa; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX idx_unidad_administrativa ON unidad_administrativa USING btree (codigo);


--
-- Name: relationship_27_fk; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE INDEX relationship_27_fk ON respuesta_jefe USING btree (codigo_personal);


--
-- Name: relationship_29_fk; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE INDEX relationship_29_fk ON respuesta_autoevaluacion USING btree (codigo_personal);


--
-- Name: respuesta_autoevaluacion_pk; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX respuesta_autoevaluacion_pk ON respuesta_autoevaluacion USING btree (id_respuesta, id_pregunta);


--
-- Name: respuesta_jefe_pk; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE UNIQUE INDEX respuesta_jefe_pk ON respuesta_jefe USING btree (id_respuesta, id_pregunta);


--
-- Name: crear_users2; Type: TRIGGER; Schema: public; Owner: postgres
--

CREATE TRIGGER crear_users2 AFTER INSERT OR DELETE ON docente FOR EACH ROW EXECUTE PROCEDURE rellenar_users2();


--
-- Name: grabar_users; Type: TRIGGER; Schema: public; Owner: postgres
--

CREATE TRIGGER grabar_users AFTER INSERT OR DELETE ON alumno FOR EACH ROW EXECUTE PROCEDURE rellenar_users();


--
-- Name: fk_carrera_unidad_ac_unidad_a; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY carrera
    ADD CONSTRAINT fk_carrera_unidad_ac_unidad_a FOREIGN KEY (codigo_unidad_academica) REFERENCES unidad_academica(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_carrera_unidad_ad_unidad_a; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY carrera
    ADD CONSTRAINT fk_carrera_unidad_ad_unidad_a FOREIGN KEY (codigo_unidad_administrativa) REFERENCES unidad_administrativa(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_docente_docente_j_docente; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY docente
    ADD CONSTRAINT fk_docente_docente_j_docente FOREIGN KEY (codigo_jefe) REFERENCES docente(codigo_personal) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_docente_personal__personal; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY docente
    ADD CONSTRAINT fk_docente_personal__personal FOREIGN KEY (codigo_personal) REFERENCES personal(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_expedien_alumno_ex_alumno; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY expediente
    ADD CONSTRAINT fk_expedien_alumno_ex_alumno FOREIGN KEY (carnet_alumno) REFERENCES alumno(carnet) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_expedien_grupo_exp_grupo; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY expediente
    ADD CONSTRAINT fk_expedien_grupo_exp_grupo FOREIGN KEY (codigo_materia_grupo, codigo_carrera_materia_grupo, plan_estudios_carrera_materia_grupo, numero_anho_grupo, ciclo_anho_grupo, numero_grupo) REFERENCES grupo(codigo_materia, codigo_carrera_materia, plan_estudios_carrera_materia, numero_anho, ciclo_anho, numero) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_grupo_anho_grup_anho; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY grupo
    ADD CONSTRAINT fk_grupo_anho_grup_anho FOREIGN KEY (numero_anho, ciclo_anho) REFERENCES anho(numero, ciclo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_grupo_materia_g_materia; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY grupo
    ADD CONSTRAINT fk_grupo_materia_g_materia FOREIGN KEY (codigo_materia, codigo_carrera_materia, plan_estudios_carrera_materia) REFERENCES materia(codigo, codigo_carrera, plan_estudios_carrera) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_imparte_docente_i_docente; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY imparte
    ADD CONSTRAINT fk_imparte_docente_i_docente FOREIGN KEY (codigo_personal_docente) REFERENCES docente(codigo_personal) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_imparte_grupo_imp_grupo; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY imparte
    ADD CONSTRAINT fk_imparte_grupo_imp_grupo FOREIGN KEY (codigo_materia_grupo, codigo_carrera_materia_grupo, plan_estudios_carrera_materia_grupo, numero_anho_grupo, ciclo_anho_grupo, numero_grupo) REFERENCES grupo(codigo_materia, codigo_carrera_materia, plan_estudios_carrera_materia, numero_anho, ciclo_anho, numero) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_instanci_anho_inst_anho; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY instancia_instrumento
    ADD CONSTRAINT fk_instanci_anho_inst_anho FOREIGN KEY (numero, ciclo) REFERENCES anho(numero, ciclo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_instanci_instrumen_instrume; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY instancia_instrumento
    ADD CONSTRAINT fk_instanci_instrumen_instrume FOREIGN KEY (id_instrumento) REFERENCES instrumento(id_instrumento) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_materia_carrera_m_carrera; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY materia
    ADD CONSTRAINT fk_materia_carrera_m_carrera FOREIGN KEY (codigo_carrera, plan_estudios_carrera) REFERENCES carrera(codigo, plan_estudios) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_materia_unidad_ac_unidad_a; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY materia
    ADD CONSTRAINT fk_materia_unidad_ac_unidad_a FOREIGN KEY (codigo_unidad_academica) REFERENCES unidad_academica(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_opcion_m_pregunta__pregunta; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY opcion_multiple
    ADD CONSTRAINT fk_opcion_m_pregunta__pregunta FOREIGN KEY (id_pregunta) REFERENCES pregunta(id_pregunta) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_pertenec_alumno_pe_alumno; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY pertenece
    ADD CONSTRAINT fk_pertenec_alumno_pe_alumno FOREIGN KEY (carnet_alumno) REFERENCES alumno(carnet) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_pertenec_carrera_p_carrera; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY pertenece
    ADD CONSTRAINT fk_pertenec_carrera_p_carrera FOREIGN KEY (codigo_carrera, plan_estudios_carrera) REFERENCES carrera(codigo, plan_estudios) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_pregunta_instrumen_instrume; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY pregunta
    ADD CONSTRAINT fk_pregunta_instrumen_instrume FOREIGN KEY (id_instrumento) REFERENCES instrumento(id_instrumento) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_inheritan_respuest; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta_autoevaluacion
    ADD CONSTRAINT fk_respuest_inheritan_respuest FOREIGN KEY (id_respuesta, id_pregunta) REFERENCES respuesta(id_respuesta, id_pregunta) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_inheritan_respuest; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta_jefe
    ADD CONSTRAINT fk_respuest_inheritan_respuest FOREIGN KEY (id_respuesta, id_pregunta) REFERENCES respuesta(id_respuesta, id_pregunta) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_instancia_instanci; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta
    ADD CONSTRAINT fk_respuest_instancia_instanci FOREIGN KEY (id_instrumento, id_instancia) REFERENCES instancia_instrumento(id_instrumento, id_instancia) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_pregunta__pregunta; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta
    ADD CONSTRAINT fk_respuest_pregunta__pregunta FOREIGN KEY (id_pregunta) REFERENCES pregunta(id_pregunta) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_relations_docente; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta_autoevaluacion
    ADD CONSTRAINT fk_respuest_relations_docente FOREIGN KEY (codigo_personal) REFERENCES docente(codigo_personal) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_relations_docente; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta_jefe
    ADD CONSTRAINT fk_respuest_relations_docente FOREIGN KEY (codigo_personal) REFERENCES docente(codigo_personal) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_respuest_respuesta_respuest; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY respuesta_alumno
    ADD CONSTRAINT fk_respuest_respuesta_respuest FOREIGN KEY (id_pregunta, id_respuesta) REFERENCES respuesta(id_pregunta, id_respuesta) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_se_compo_docente_s_docente; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY se_compone
    ADD CONSTRAINT fk_se_compo_docente_s_docente FOREIGN KEY (codigo_personal_docente) REFERENCES docente(codigo_personal) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_se_compo_unidad_ac_unidad_a; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY se_compone
    ADD CONSTRAINT fk_se_compo_unidad_ac_unidad_a FOREIGN KEY (codigo_unidad_academica) REFERENCES unidad_academica(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: fk_unidad_a_unidad_ad_unidad_a; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY unidad_academica
    ADD CONSTRAINT fk_unidad_a_unidad_ad_unidad_a FOREIGN KEY (codigo_unidad_administrativa) REFERENCES unidad_administrativa(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;


